#pragma once
#include <d3d9.h>
#include <d3dx9.h>

namespace Minicraft
{
	namespace Camera
	{
		class GameCamera
		{
		private:
			// a pointer to the d3ddevice
			LPDIRECT3DDEVICE9 d3ddevice;

			// represents the X, Y, & Z position of the camera
			D3DXVECTOR3* cameraPosition;

			// represents the X, Y, & Z position of what the camera is looking at
			D3DXVECTOR3* lookPosition;

			// represents the X, Y, & Z rotation of the camera
			D3DXVECTOR3* cameraRotation;

			// represents the camera's view matrix.
			D3DXMATRIX* viewMatrix;

			// represents the camera's projection matrix
			D3DXMATRIX* projectionMatrix;

		public:
			// Ctor/Dtor
			GameCamera(LPDIRECT3DDEVICE9);
			~GameCamera();

			// updates the camera's view and projection matricies
			void Update();

			// accessors for the 2 vector3's
			D3DXVECTOR3* GetCameraPosition();
			D3DXVECTOR3* GetCameraRotation();
			D3DXVECTOR3* GetLookPosition();
		};
	}
}